#!usr/bin/env python  
# -*- coding:utf-8 -*-
""" 
@author:robot
@file: solution.py 
@version:
@time: 2024/01/21 
"""
import math

n = int(input())
nums = [int(input()) for _ in range(n)]

W = 1474560 // 512

dp = [[0] * (W + 1) for _ in range(n + 1)]

# 动态规划求解最大值
for i in range(1, n + 1):
    size = math.ceil(nums[i - 1] / 512)  # 计算当前文件大小所占的块数
    value = nums[i - 1]  # 当前文件大小

    for j in range(W + 1):  # 遍历背包容量
        if size <= j:
            # 如果当前文件大小小于等于当前背包容量，可以选择将该文件放入背包
            # 判断放入该文件后的总价值是否大于不放入该文件的总价值，选择较大者
            dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - size] + value)
        else:
            # 如果当前文件大小大于当前背包容量，无法放入该文件，只能选择不放入该文件
            dp[i][j] = dp[i - 1][j]
"""

input

```text
3
737270
737272
737288
```

output

```text
1474542
```
"""
print(dp[n][W])

